#include "macro.h"
int _T(char* name)
{
    if (!name)
        return -1;
    int i;
    for (i = 0; i < sizeof(_devMaps) / sizeof(_devMaps[0]); i++)
    {
        if (_devMaps[i].Name&&strcmp(_devMaps[i].Name,name) == 0)
        {
            return _devMaps[i].DevId;
        }
    }
    return -1;
}

int _MID(int mapid)
{
    int sizeofmap = sizeof(MapIds)/ sizeof(int);
    int sizeofctrl = sizeof(ctrlIdxs)/ sizeof(int);
    int *mapnos = MapIds;
    int *ctrlids = ctrlIdxs;

    int idnum = -1;
    int low = 0, high = sizeofmap - 1;
    while (low <= high) 
    {
        int mid = (high - low) / 2 + low;
        int num = mapnos[mid];
        if (num == mapid)
        {
            idnum = mid;
            break;    
        }
        else if (num > mapid) 
        {
            high = mid - 1;
        }
        else
        {
            low = mid + 1;
        }
    }
    if (idnum >= 0  && idnum < sizeofctrl)
        return ctrlids[idnum];
    else return -1;
}


